#ifndef __IDEATESTVECTORSSET2__
#define __IDEATESTVECTORSSET2__

#include "../plainkeycipher.h"

// Test vectors from <https://www.cosic.esat.kuleuven.be/nessie/testvectors/bc/idea/Idea-128-64.verified.test-vectors>

const std::vector <PlainKeyCipher> IDEA_TEST_VECTORS_SET_2 = {
    std::make_tuple("8000000000000000", "00000000000000000000000000000000", "8001000180008000"),
    std::make_tuple("4000000000000000", "00000000000000000000000000000000", "c00180014000c000"),
    std::make_tuple("2000000000000000", "00000000000000000000000000000000", "6001c00120006000"),
    std::make_tuple("1000000000000000", "00000000000000000000000000000000", "3001600190003000"),
    std::make_tuple("0800000000000000", "00000000000000000000000000000000", "18013001c8009800"),
    std::make_tuple("0400000000000000", "00000000000000000000000000000000", "8c01180164004c00"),
    std::make_tuple("0200000000000000", "00000000000000000000000000000000", "46018c0132002600"),
    std::make_tuple("0100000000000000", "00000000000000000000000000000000", "2301c60199009300"),
    std::make_tuple("0080000000000000", "00000000000000000000000000000000", "9181e3014c80c980"),
    std::make_tuple("0040000000000000", "00000000000000000000000000000000", "c8c1f1812640e4c0"),
    std::make_tuple("0020000000000000", "00000000000000000000000000000000", "e461f8c11320f260"),
    std::make_tuple("0010000000000000", "00000000000000000000000000000000", "f231fc610990f930"),
    std::make_tuple("0008000000000000", "00000000000000000000000000000000", "f919fe3104c8fc98"),
    std::make_tuple("0004000000000000", "00000000000000000000000000000000", "fc8dff190264fe4c"),
    std::make_tuple("0002000000000000", "00000000000000000000000000000000", "fe47ff8d0132ff26"),
    std::make_tuple("0001000000000000", "00000000000000000000000000000000", "0028fff5003f0013"),
    std::make_tuple("0000800000000000", "00000000000000000000000000000000", "0001800180008000"),
    std::make_tuple("0000400000000000", "00000000000000000000000000000000", "00014001c0004000"),
    std::make_tuple("0000200000000000", "00000000000000000000000000000000", "8001a0016000a000"),
    std::make_tuple("0000100000000000", "00000000000000000000000000000000", "4001d00130005000"),
    std::make_tuple("0000080000000000", "00000000000000000000000000000000", "2001e8019800a800"),
    std::make_tuple("0000040000000000", "00000000000000000000000000000000", "900174014c005400"),
    std::make_tuple("0000020000000000", "00000000000000000000000000000000", "48013a012600aa00"),
    std::make_tuple("0000010000000000", "00000000000000000000000000000000", "a4011d019300d500"),
    std::make_tuple("0000008000000000", "00000000000000000000000000000000", "d2010e81c980ea80"),
    std::make_tuple("0000004000000000", "00000000000000000000000000000000", "e9010741e4c0f540"),
    std::make_tuple("0000002000000000", "00000000000000000000000000000000", "f48103a1f260faa0"),
    std::make_tuple("0000001000000000", "00000000000000000000000000000000", "fa4101d1f930fd50"),
    std::make_tuple("0000000800000000", "00000000000000000000000000000000", "fd2100e9fc98fea8"),
    std::make_tuple("0000000400000000", "00000000000000000000000000000000", "fe910075fe4cff54"),
    std::make_tuple("0000000200000000", "00000000000000000000000000000000", "ff49003bff26ffaa"),
    std::make_tuple("0000000100000000", "00000000000000000000000000000000", "0001000000010001"),
    std::make_tuple("0000000080000000", "00000000000000000000000000000000", "0001000180000000"),
    std::make_tuple("0000000040000000", "00000000000000000000000000000000", "00010001c0000000"),
    std::make_tuple("0000000020000000", "00000000000000000000000000000000", "8001000160000000"),
    std::make_tuple("0000000010000000", "00000000000000000000000000000000", "4001000130008000"),
    std::make_tuple("0000000008000000", "00000000000000000000000000000000", "200100019800c000"),
    std::make_tuple("0000000004000000", "00000000000000000000000000000000", "100100014c00e000"),
    std::make_tuple("0000000002000000", "00000000000000000000000000000000", "8801000126007000"),
    std::make_tuple("0000000001000000", "00000000000000000000000000000000", "4401000193003800"),
    std::make_tuple("0000000000800000", "00000000000000000000000000000000", "22010001c9801c00"),
    std::make_tuple("0000000000400000", "00000000000000000000000000000000", "11010001e4c00e00"),
    std::make_tuple("0000000000200000", "00000000000000000000000000000000", "08810001f2600700"),
    std::make_tuple("0000000000100000", "00000000000000000000000000000000", "04410001f9300380"),
    std::make_tuple("0000000000080000", "00000000000000000000000000000000", "02210001fc9801c0"),
    std::make_tuple("0000000000040000", "00000000000000000000000000000000", "01110001fe4c00e0"),
    std::make_tuple("0000000000020000", "00000000000000000000000000000000", "00890001ff260070"),
    std::make_tuple("0000000000010000", "00000000000000000000000000000000", "ffc3ff910055ff9a"),
    std::make_tuple("0000000000008000", "00000000000000000000000000000000", "0001000100008000"),
    std::make_tuple("0000000000004000", "00000000000000000000000000000000", "0001000180004000"),
    std::make_tuple("0000000000002000", "00000000000000000000000000000000", "00018001c0002000"),
    std::make_tuple("0000000000001000", "00000000000000000000000000000000", "8001c001e0009000"),
    std::make_tuple("0000000000000800", "00000000000000000000000000000000", "400160017000c800"),
    std::make_tuple("0000000000000400", "00000000000000000000000000000000", "2001b00138006400"),
    std::make_tuple("0000000000000200", "00000000000000000000000000000000", "900158011c003200"),
    std::make_tuple("0000000000000100", "00000000000000000000000000000000", "c8012c018e009900"),
    std::make_tuple("0000000000000080", "00000000000000000000000000000000", "640116014700cc80"),
    std::make_tuple("0000000000000040", "00000000000000000000000000000000", "32010b012380e640"),
    std::make_tuple("0000000000000020", "00000000000000000000000000000000", "1901058111c0f320"),
    std::make_tuple("0000000000000010", "00000000000000000000000000000000", "0c8102c108e0f990"),
    std::make_tuple("0000000000000008", "00000000000000000000000000000000", "064101610470fcc8"),
    std::make_tuple("0000000000000004", "00000000000000000000000000000000", "032100b10238fe64"),
    std::make_tuple("0000000000000002", "00000000000000000000000000000000", "01910059011cff32"),
    std::make_tuple("0000000000000001", "00000000000000000000000000000000", "0013fff500120009"),
};

#endif // __IDEATESTVECTORSSET2__
